package com.corpgovernment.common.apollo;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
 * 国际机票apollo
 *
 * @author yujue.wang
 */
@Component
public class IntlFlightApollo extends CommonApollo {

    /**
     * 公司支付后处理控制参数
     */
    @Value("${accnt_operation_code:1}")
    private Integer accntOperationCode;
    /**
     * 个人支付后处理控制参数
     */
    @Value("${ppay_operation_code:5}")
    private Integer ppayOperationCode;
    /**
     * 国际机票可操作的类型
     */
    @Value("${intlFlightOperatorType:{}}")
    private String intlFlightOperatorType;
    /**
     * 停留时间校验 时间/秒
     */
    @Value("${bookTimeout:1200}")
    private Long bookTimeout;
    /**
     * 国际机票验舱验价次数与间隔
     */
    @Value("${pataLoopConfig:8|1000}")
    private String pataLoopConfig;

    /**
     * 国际机票需求单报价时间  默认单位：分钟   默认大小2小时
     */
    @Value("${demand_limit:30}")
    private Integer demandLimit;

    /**
     * 国际机票改签重要通知文案提示信息
     */
    @Value("${rebook.event.message:%s,%s-%s申请更改至%s;联系人：%s，电话：%s，邮箱：%s。改签原因：%s，本单仅支持【新单改签】，请尽快处理。}")
    private String rebookEventMessage;

    /**
     * 公司支付后处理控制参数
     */
    public Integer getAccntOperationCode() {
        return Integer.parseInt(getAppProperty("accnt_operation_code", "1"));
    }

    /**
     * 个人支付后处理控制参数
     */
    public Integer getPpayOperationCode() {
        return Integer.parseInt(getAppProperty("ppayOperationCode", "5"));
    }

    /**
     * 国际机票可操作的类型
     */
    /*public String getIntlFlightOperatorType() {
        return getAppProperty("intlFlightOperatorType", "");
    }*/

    public String getIntlFlightOperatorType() {
        return intlFlightOperatorType;
    }

    /**
     * 停留时间校验 时间/秒
     */
    public Long getBookTimeout() {
        return Long.valueOf(getAppProperty("bookTimeout", "1200"));
    }

    /**
     * 国际机票验舱验价次数与间隔
     */
    public String getPataLoopConfig() {
        return getAppProperty("pataLoopConfig", "8|1000");
    }

    /**
     * 国际机票需求单报价时间  默认单位：分钟   默认大小30分钟
     */
    public Integer getDemandLimit() {
        return Integer.valueOf(getAppProperty("demand_limit", "30"));
    }

    public String getRebookEventMessage() {
        return getAppProperty("rebook.event.message", "%s,%s-%s申请更改至%s;联系人：%s，电话：%s，邮箱：%s。改签原因：%s，本单仅支持【新单改签】，请尽快处理。");
    }
}
